package com.yxy.chatserver.service;

import com.yxy.chatserver.domain.dto.UserLoginDTO;
import com.yxy.chatserver.domain.dto.UserRegisterDTO;
import com.yxy.chatserver.domain.po.User;
import com.yxy.chatserver.domain.vo.FriendsListVO;
import com.yxy.chatserver.domain.vo.UserLoginVO;
import com.yxy.chatserver.domain.vo.UserQueryVO;
import org.apache.ibatis.annotations.Select;

import java.util.List;

/**
 * 用户服务接口
 */
public interface UserService {
    /**
     *  注册
     * @param userRegisterDTO 注册信息
     */
    void register(UserRegisterDTO userRegisterDTO);

    /**
     * 登录
     * @param userLoginDTO 登录信息
     */
    UserLoginVO login(UserLoginDTO userLoginDTO);

    /**
     * 查询用户
     * @param query 查询条件
     */
    UserQueryVO queryUser(String query);

    /**
     * 查询用户好友列表
     * @param userId 用户id
     */
    List<FriendsListVO> queryFriendsList(String userId);

    /**
     * 根据id查询用户
     * @param fromUserId 用户id
     */
    User getById(String fromUserId);

    /**
     * 添加好友
     * @param userId
     * @param friendId
     * @param nickname
     * @param avatar
     */
    void addFriend(String userId, String friendId, String nickname, String avatar);

    /**
     * 检查是否为好友
     * @param fromUserId
     * @param toUserId
     * @return
     */
    Boolean checkFriend(String userId, String friendId);
}
